﻿#ifndef WRWORKMAINGUIPARTACTIVATOR_H
#define WRWORKMAINGUIPARTACTIVATOR_H

#include "../WRGlobal.h"
#include "../WRWorkMainGuiPart.h"
#include "../../WRSoft-Utility/Runtime/WRClassActivator.h"
#include <QDomElement>

//工作主界面部件激活器类型标识 {E81CDDFE-08F7-4102-A520-4C10035F913E}
#define WRWorkMainGuiPartActivatorType QUuid(0xe81cddfe, 0x8f7, 0x4102, 0xa5, 0x20, 0x4c, 0x10, 0x3, 0x5f, 0x91, 0x3e)

namespace WRTypes
{
    //获取工作主界面部件激活器类型。
    WRSOFT_GUIAPP_WORKING_COMMON_API WRType* workMainGuiPartActivator(void);
}

//表示工作主界面部件创建器。
class WRSOFT_GUIAPP_WORKING_COMMON_CLASS WRWorkMainGuiPartActivator : public WRClassActivator
{
private:
    //禁用复制构造函数和赋值操作符。
    Q_DISABLE_COPY(WRWorkMainGuiPartActivator)

protected:
    //初始化工作主界面部件创建器。
    inline WRWorkMainGuiPartActivator(void)
    {
        //add code here
    }
    //释放当前对象所占用的相关资源。
    virtual ~WRWorkMainGuiPartActivator(void)
    {
        //add code here
    }

public:
    //获取当前对象类型。
    WRType* type(void) const;
    //创建工作主界面部件。
    virtual WRWorkMainGuiPart* create(const QDomElement& config) = 0;
};

#endif // WRWORKMAINGUIPARTACTIVATOR_H
